/*
 * @author: 
 * @description: 监听主题变化
 * @createTime: 2022-12-12 15:22:19
 */
import system from '../theme/system-theme'
import {
	mapMutations,
	mapGetters
} from 'vuex'
export default {
	install(Vue) {
		Vue.mixin({
			onShow() {
				//修改导航栏 底部 tab
				system.setSystemTheme(this.cueTheme)
				//获取缓存 背景色
				let bgColor = uni.getStorageSync('pageColor') || '';
				if (bgColor) {
					this.getSystemBg(bgColor)
				}
				//获取缓存 主题名字
				let themeType = uni.getStorageSync('themeType') || '';
				if (themeType) {
					this.cueGetTheme(themeType)
				}
				// 监听主题状态变化
				uni.onThemeChange((res) => {
					// console.log("监听主题状态变化", res.theme);
					//黑夜
					if (res.theme == 'dark') {
						this.cueGetTheme('night-theme')
					}
					//白天
					if (res.theme == 'light') {
						// 有多个主题时 判断 缓存是否为白色主题
						let type = uni.getStorageSync('themeType');
						if (type != 'day-theme') {
							this.cueGetTheme(type)
						} else {
							this.cueGetTheme('day-theme')
						}
					}
				});
			},
			computed: {
				// 获取vuex 主题参数
				...mapGetters({
					cueTheme: 'theme/theme',
					pageBg: 'theme/pageColor',
				}),
			},
			methods: {
				// 修改主题
				...mapMutations({
					cueGetTheme: 'theme/GET_THEME',
					themeCache: 'theme/SET_THEME_CACHE',
					pageColorCache: 'theme/SET_PAGE_COLOR'
				}),
				// 设置 全局背景色
				getSystemBg() {
					//从 主题列表 获取 页面颜色
					let bgColor = system.systemThemeBg(this.cueTheme)
					// console.log(bgColor);
					//缓存 已设置 背景色
					this.pageColorCache(bgColor)
				}
			}
		})
	}
}
